concat 函数示例
CONCAT() 函数不应与 CONCATENATE 脚本关键字混淆。
在最简形式中,Concat() 用于将字符串与值/词/选择项组合为一个字符串。但是,它可以利用多种方式帮助你解决各种问题。以下表列出所有示例:
Table | MyColumn | Date | Value |
---|---|---|---|
Data | JKL | 01/01/2012 | 11 |
Data1 | WVX | 01/02/2012 | 13 |
Data | GHI | 01/03/2012 | 13 |
Data | ABC | 01/04/2012 | 15 |
Data1 | STU | 01/05/2012 | 18 |
Data1 | PQR | 01/06/2012 | 10 |
Data1 | MNO | 01/07/2012 | 25 |
Data | DEF | 01/08/2012 | 11 |
简单字符串串联
如前所述,concat函数允许你将列表所有值串成一串。这些值可以是硬代码或选择项/数据驱动值。
=CONCAT(MyColumn,',')
=CONCAT(DISTINCT MyColumn,',')
这一简单concat 语句可以将 MyColumn 栏中的所有可能值串成一串。你不妨增加 DISTINCT 关键词。可以确保字符串中的每个值只显示一次:
ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX
使用简单concat时,你可以选择函数的排序权重,根据你的选择栏排序字符串的值。在以下示例中,增加日期栏以排序数值。
=CONCAT(MyColumn, ',', Date)
结果:JKL,VWX,GHI,ABC,STU,PQR,MNO,DEF
Expression/Set 语句内的Concat()
示例: 将多个动态值传递至设置分析表达式中
当你想将数值的动态选择传递至 SET 语句时,是有机会的。字符串需要添加单引号,即 CONCAT() 函数返回,如'JKL','VWX'。但你不能保留他们本身的单引号,因为他们会被解释为当评估Concat时而不是评估表达式时。使用 Chr()函数来代替:
=CONCAT(Chr(39)&MyColumn&Chr(39),',')
之后可以传递concat语句到表达式中:
=Sum({<MyColumn={$(=CONCAT(Chr(39)&MyColumn&Chr(39),','))}>} Value)
大多数情况下,出现数据岛的地方就可以使用这项技术。能够让你传递数值到表达式中而不影响数据模型的任何部分,因为数据岛表格未加入进去。
脚本中的Concat()
Concat可以用于脚本中,将多行转换成单列的值,正如任何其它的聚合一样。
务必要较早使用数据,脚本结果 CONCAT如下所示:
以下为脚本函数的结果:
Table | CombinedData |
---|---|
Data | ABC,DEF,GHI,JKL |
Data1 | MNO,PQR,STU,WVX |
使用 Rank() 影响Concat()
当你开始使用与concat()相联的其他函数时,你可以开始完成更好的结果。在本例中,已使用Rank()抓取前三项(基于数值)并将其串联起来。
=CONCAT(IF(aggr(Rank(sum(Value)),MyColumn)<=3,MyColumn),',')
结果:ABC,MNO,STU